Session Initiation Protocol (SIP) is a communications protocol for signaling and controlling multimedia communication sessions. These communication sessions may include internet telephony for voice calls and video calls, as well as instant messaging over internet protocol (IP) networks. To provide the communications, SIP works in conjunction with other application layer protocols that identify and carry the session media. In particular, media identification and negotiation is achieved using Session Description Protocol (SDP), which is used for session announcement, session invitation, and parameter negotiation.
In some implementations, SDP may be used to provide IP address information between a requesting system and a receiving system. This IP address information permits the receiving system to identify the source of a communication request. However, although the requesting system may provide the receiving system with IP address information, the IP address information may not provide a preferred path to the requesting system. In particular, if the requesting system is allocated multiple IP addresses, current communication invite methods are incapable of determining a preferred path to one of the addresses allocated to the requesting system. Additionally, with current methods, it may be difficult to setup and configure communications due to firewalls, routers, and other mechanisms of a network that block communications between particular IP addresses.
Overview
Examples disclosed herein provide systems, methods, and computer readable media to enhance address selection in session initiation protocol (SIP) communications. In one implementation, a method of operating an end user communication device that is assigned a plurality of internet protocol (IP) addresses includes, in response to a request to communicate with a second communication device, identifying a first source IP address and a second source IP address from the plurality of IP addresses, wherein at least one of the first source IP address or the second source IP address is selected using a source address selection algorithm (SASA) with a destination IP address for a Session Initiation Protocol (SIP) server. The method further provides, transferring a communication request to the SIP server with the first source IP address and the second source IP address to invite a communication with the second communication device, and receiving a communication response from the second communication device that indicates at least one IP address for the second communication device. The method also includes, applying SASA to the at least one IP address for the second communication device to determine a third source IP address for the end user communication device, and initiating the communication with the second communication device using the third source IP address.
In one implementation, a computing apparatus includes one or more non-transitory computer readable storage media and a processing system operatively coupled with the one or more non-transitory computer readable storage media. The computing apparatus further includes program instructions stored on the one or more non-transitory computer readable media to operate an end user communication device assigned a plurality of IP addresses that, when executed by the processing system, direct the processing system to, in response to a request to communicate with a second communication device, identify a first source IP address and a second source IP address from the plurality of IP addresses, wherein at least one of the first source IP address or the second source IP address is selected using a SASA with a destination IP address for a SIP server. The program instructions further direct the processing system to transfer a communication request to the SIP server with the first source IP address and the second source IP address to invite a communication with the second communication device, and receive a communication response from the second communication device that indicates at least one IP address for the second communication device. The program instructions also direct the processing system to apply SASA to the at least one IP address for the second communication device to determine a third source IP address for the end user communication device, and initiate the communication with the second communication device using the third source IP address.
In another implementation, a communication system includes a first communication device allocated a plurality of internet protocol (IP) addresses and configured to, in response to a request to communicate with a second communication device, identify a first source IP address and a second source IP address from the plurality of IP addresses, wherein at least one of the first source IP address or the second source IP address is selected using a source address selection algorithm (SASA) with a destination IP address for a Session Initiation Protocol (SIP) server, and transfer a communication request to the SIP server with the first source IP address and the second source IP address to invite a communication with the second communication device. The communication system further includes the second communication device configured to identify at least one IP address for the second communication device and transfer a communication response to the first communication device that indicates the at least one IP address. The communication system also provides the first communication device configured to receive the communication response, apply SASA to the at least one IP address for the second communication device to determine a third source IP address for the first communication device, and initiate the communication with the second communication device using the third source IP address.